package com.szrt.socket.ch03.udp.demo01;


import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import org.junit.Test;

public class UDPTest {
	
	/**
	 *  发送端
	 */
	@Test
	public void send(){
		DatagramSocket ds=null;
		try {
			//1 在数据报中指明往哪里发
			ds = new DatagramSocket();
			
			String str="我是要发送的数据";
			byte[] b = str.getBytes();
			
			//2 创建1个数据报 注意每个数据报不能大于64K 每个数据报记录3个东西   发送端IP/端口号(自动记录)  接收端的IP/端口号   要发送的数据
			DatagramPacket pack = 
					new DatagramPacket(b, 0, b.length, InetAddress.getByName("127.0.0.1"),9090);
			
			//3 发送数据
			ds.send(pack);
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			//4 关闭资源
			if(ds !=null){
				ds.close();
			}
		}
	}
	
	/**
	 * 接收端
	 */
	@Test
	public void reveive(){
		
		DatagramSocket ds=null;
		try {
			ds = new DatagramSocket(9090);
			
			//接收到的数据保存在数组b中
			byte[] b = new byte[1024];
			DatagramPacket pack = new DatagramPacket(b,0,b.length);
			
			ds.receive(pack);
			
			String jg = new String(pack.getData(),0,pack.getLength());
			
			System.out.println(jg);
		}catch (IOException e) {
			e.printStackTrace();
		}finally{
			if(ds !=null){
				ds.close();
			}
		}
		
	}

}
